#第五章：集合

#集合（set）是一个无序和无索引的集合，集合中不允许存在重复的成员。

#创建一个空集合：
a=set()
print(type(a))
print(a)

#{}表示空字典：
b={}
print(type(b))
print(b)

#创建一个非空集合：
c={2024,2025,2026}
print(type(c))
print(c)

d={2024,'xiaoxiaounicorn'}
print(type(d))
print(d)

'''
set是一个无序的集合,插入数据的顺序与数据的存储顺序不一定相同。
set中存储的元素必须是“可哈希的”,也就是可以计算出一个哈希值。
'''

#新增元素：
d.add(666)
print(d)

#update添加多个元素：
d.update([5,6,7,8,9,10])
print(d)

#删除：remove删除特定值
d.remove(6)
print(d)
# 如果要删除的元素不存在，那么程序会抛出异常。

#使用discard方法也可以指定删除集合中特定值的元素。比如：
d.discard(666)
d.discard(11)#不存在,不会抛异常
print(d)

f={1,2,3,4,5,6,7,8,10}
#使用pop方法可以删除集合中的最后一项。比如：
f.pop()
print(f)
# 集合是无序的，因此使用pop方法时无法预知哪一个元素将会被删除，最终被删除的元素将会作为pop方法的返回值进行返回。


#使用in和in not操作符能够判定某个元素是否在集合中存在。比如：
m = {1, 2, 3, 4}
print(1 in m)       # True
print(10 in m)      # False
print(1 not in m)   # False
print(10 not in m)  # True

#for循环：
for elem in d:
    print(elem)

#合并集合：

n=d.union(f)
print(d)
print(f)
print(n)

#update也可以合并：
L={99,98,97,96,95}
n.update(L)
print(n)

#返回交集
k=L.intersection(n)
print(k)


